package model

import (
	"time"
)

// XxlJobInfo
type XxlJobInfo struct {
	Id                     int64     `gorm:"primarykey,column:id"`             //
	JobGroup               int64     `gorm:"column:job_group"`                 // 执行器主键ID
	JobDesc                string    `gorm:"column:job_desc"`                  //
	AddTime                time.Time `gorm:"column:add_time"`                  //
	UpdateTime             time.Time `gorm:"column:update_time"`               //
	Author                 string    `gorm:"column:author"`                    // 作者
	AlarmEmail             string    `gorm:"column:alarm_email"`               // 报警邮件
	ScheduleType           string    `gorm:"column:schedule_type"`             // 调度类型
	ScheduleConf           string    `gorm:"column:schedule_conf"`             // 调度配置，值含义取决于调度类型
	MisfireStrategy        string    `gorm:"column:misfire_strategy"`          // 调度过期策略
	ExecutorRouteStrategy  string    `gorm:"column:executor_route_strategy"`   // 执行器路由策略
	ExecutorHandler        string    `gorm:"column:executor_handler"`          // 执行器任务handler
	ExecutorParam          string    `gorm:"column:executor_param"`            // 执行器任务参数
	ExecutorBlockStrategy  string    `gorm:"column:executor_block_strategy"`   // 阻塞处理策略
	ExecutorTimeout        int32     `gorm:"column:executor_timeout"`          // 任务执行超时时间，单位秒
	ExecutorFailRetryCount int32     `gorm:"column:executor_fail_retry_count"` // 失败重试次数
	GlueType               string    `gorm:"column:glue_type"`                 // GLUE类型
	GlueSource             string    `gorm:"column:glue_source"`               // GLUE源代码
	GlueRemark             string    `gorm:"column:glue_remark"`               // GLUE备注
	GlueUpdatetime         time.Time `gorm:"column:glue_updatetime"`           // GLUE更新时间
	ChildJobid             string    `gorm:"column:child_jobid"`               // 子任务ID，多个逗号分隔
	TriggerStatus          int8      `gorm:"column:trigger_status"`            // 调度状态：0-停止，1-运行
	TriggerLastTime        int64     `gorm:"column:trigger_last_time"`         // 上次调度时间
	TriggerNextTime        int64     `gorm:"column:trigger_next_time"`         // 下次调度时间

}

// TableName 自定义表名
func (u *XxlJobInfo) TableName() string {
	return "xxl_job_info"
}
